package nc.itf.pub.service;

import com.alibaba.fastjson.JSONArray;
import nc.vo.pub.BusinessException;

import java.io.InputStream;
import java.util.List;

/**
 * 附件同步服务
 * @author wangyong
 * @date 2019/7/18
 */
public interface INCCAttachSyncService {
    /**
     * 创建单据附件文件夹
     * @param folderName  文件夹名称
     * @param parentPath  文件夹路径
     * @param userid      用户id
     * @return
     * @throws BusinessException
     */
    void createAttNode(String folderName, String parentPath, String userid) throws BusinessException;

    /**
     *
     * 上传附件 采购系统
     * @param fullPath       上传地址文件完整路径  1001A11000000000U4TT/申请单附件 --> 对应单据主键/文件夹名
     * @param billID         上传单据主键盘
     * @param vbillcode      上传单据号
     * @param fileURLs       需要上传的附件地址
     * @param pk_group       集团
     * @param pk_org         组织
     * @param pk_org_v       组织版本
     * @param pk_billtypeid  单据类型
     * @param cuserid        用户ID
     * @throws BusinessException
     */
    void fileUpload(String fullPath, String billID, String vbillcode, List<String> fileURLs, String pk_group, String pk_org, String pk_org_v, String pk_billtypeid, String cuserid) throws BusinessException;

    /**
     *
     * 上传附件 采购系统
     * @param fullPath       上传地址文件完整路径  1001A11000000000U4TT/申请单附件 --> 对应单据主键/文件夹名
     * @param billID         上传单据主键盘
     * @param vbillcode      上传单据号
     * @param fileURLs       需要上传的附件地址
     * @param pk_group       集团
     * @param pk_org         组织
     * @param pk_org_v       组织版本
     * @param pk_billtypeid  单据类型
     * @param cuserid        用户ID
     * @throws BusinessException
     */
    void fileUploadURL(String fullPath, String billID, String vbillcode, List<String> fileURLs, String pk_group, String pk_org, String pk_org_v, String pk_billtypeid, String cuserid) throws BusinessException;

    /**
     *
     *
     * 上传附件NC系统
     * @param fullPath       上传地址文件完整路径  1001A11000000000U4TT/申请单附件 --> 对应单据主键/文件夹名
     * @param billID         上传单据主键盘
     * @param vbillcode      上传单据号
     * @param fileURLs       需要上传的附件地址
     * @param pk_group       集团
     * @param pk_org         组织
     * @param pk_org_v       组织版本
     * @param pk_billtypeid  单据类型
     * @param cuserid        用户ID
     * @throws BusinessException
     */
    void fileUploadNC(String fullPath, String billID, String vbillcode, List<String> fileURLs, String pk_group, String pk_org, String pk_org_v, String pk_billtypeid, String cuserid) throws BusinessException;

    /**
     *
     *
     * 上传附件NC系统
     * @param fullPath       上传地址文件完整路径  1001A11000000000U4TT/申请单附件 --> 对应单据主键/文件夹名
     * @param billID         上传单据主键盘
     * @param vbillcode      上传单据号
     * @param fileURLs       需要上传的附件地址
     * @param pk_group       集团
     * @param pk_org         组织
     * @param pk_org_v       组织版本
     * @param pk_billtypeid  单据类型
     * @param cuserid        用户ID
     * @throws BusinessException
     */
    void fileUploadHOPG(String fullPath, String billID, String vbillcode, List<String> fileURLs, String pk_group, String pk_org, String pk_org_v, String pk_billtypeid, String cuserid) throws BusinessException;


    /**
     *
     * 附件Base64上传
     * @param pk_group
     * @param pk_org
     * @param pk_org_v
     * @param pk_billtypeid
     * @param pk_billid
     * @param createUserid
     * @param arrs
     * @throws BusinessException
     */
    void fileUploadFileBase64(String pk_group, String pk_org, String pk_org_v, String pk_billtypeid,String pk_billid,String createUserid, JSONArray arrs) throws BusinessException;


    /**
     *
     * 附件InputStream上传
     * @param pk_group
     * @param pk_org
     * @param pk_org_v
     * @param pk_billtypeid
     * @param pk_billid
     * @param createUserid
     * @param fileName
     * @param fileType
     * @param inputStream
     * @throws BusinessException
     */
    void fileUploadFileInputStream(String pk_group, String pk_org, String pk_org_v, String pk_billtypeid,String pk_billid,String createUserid,String fileName,String fileType, InputStream inputStream) throws BusinessException;

}
